\section{fsm\+\_\+foe.\+c File Reference}
\label{fsm__foe_8c}\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}


Ether\+C\+AT FoE state machines.  


\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{fsm__foe_8c_a4246c4ce35bd79643952b5a0063a9bc3}} 
\#define \textbf{ E\+C\+\_\+\+F\+S\+M\+\_\+\+F\+O\+E\+\_\+\+T\+I\+M\+E\+O\+UT}~3000
\begin{DoxyCompactList}\small\item\em Maximum time in ms to wait for responses when reading out the dictionary. \end{DoxyCompactList}\item 
\mbox{\label{fsm__foe_8c_a490c6164b77b35a76c142d7ae688ee46}} 
\#define \textbf{ E\+C\+\_\+\+M\+B\+O\+X\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+L\+E\+A\+C\+C\+E\+SS}~0x04
\begin{DoxyCompactList}\small\item\em Mailbox type FoE. \end{DoxyCompactList}\item 
\mbox{\label{fsm__foe_8c_a0a2af366a118692e3d53d956a80f9fc3}} 
\#define \textbf{ E\+C\+\_\+\+F\+O\+E\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+S\+I\+ZE}~6
\begin{DoxyCompactList}\small\item\em Size of the FoE header. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \{ \newline
\textbf{ E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+R\+RQ} = 1, 
\textbf{ E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+W\+RQ} = 2, 
\textbf{ E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+D\+A\+TA} = 3, 
\textbf{ E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+A\+CK} = 4, 
\newline
\textbf{ E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+E\+RR} = 5, 
\textbf{ E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+B\+U\+SY} = 6
 \}\begin{DoxyCompactList}\small\item\em FoE Op\+Codes. \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ ec\+\_\+foe\+\_\+prepare\+\_\+data\+\_\+send} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Sends a file or the next fragment. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+foe\+\_\+prepare\+\_\+wrq\+\_\+send} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Prepare a write request (W\+RQ) with filename. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+foe\+\_\+prepare\+\_\+rrq\+\_\+send} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Prepare a read request (R\+RQ) with filename. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+foe\+\_\+prepare\+\_\+send\+\_\+ack} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Prepare to send an acknowledge. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+foe\+\_\+set\+\_\+tx\+\_\+error} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, uint32\+\_\+t errorcode)
\begin{DoxyCompactList}\small\item\em Set an error code and go to the send error state. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+foe\+\_\+set\+\_\+rx\+\_\+error} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, uint32\+\_\+t errorcode)
\begin{DoxyCompactList}\small\item\em Set an error code and go to the receive error state. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+end} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em State\+: E\+ND. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+error} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em State\+: E\+R\+R\+OR. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+wrq\+\_\+sent} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em State\+: W\+RQ S\+E\+NT. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+rrq\+\_\+sent} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em State\+: R\+RQ S\+E\+NT. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+check} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Check for acknowledge. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+read} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Acknowledge a read operation. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+sent} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em State\+: W\+RQ S\+E\+NT. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+check} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Check for data. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+read} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Start reading data. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+sent\+\_\+ack} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Sent an acknowledge. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+write\+\_\+start} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Initializes the FoE write state machine. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+read\+\_\+start} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Starting state for read operations. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+init} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+clear} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm)
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+exec} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+datagram\+\_\+t} $\ast$datagram)
\begin{DoxyCompactList}\small\item\em Executes the current state of the state machine. \end{DoxyCompactList}\item 
int \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+success} (const \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm)
\begin{DoxyCompactList}\small\item\em Returns, if the state machine terminated with success. \end{DoxyCompactList}\item 
void \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+transfer} (\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$fsm, \textbf{ ec\+\_\+slave\+\_\+t} $\ast$slave, \textbf{ ec\+\_\+foe\+\_\+request\+\_\+t} $\ast$request)
\begin{DoxyCompactList}\small\item\em Prepares an FoE transfer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{fsm__foe_8c_ae1522d53c9b6fc891d7fc2e95440da60}} 
enum  \{ ... \}  \textbf{ ec\+\_\+foe\+\_\+opcode\+\_\+t}
\begin{DoxyCompactList}\small\item\em FoE Op\+Codes. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Ether\+C\+AT FoE state machines. 



\subsection{Enumeration Type Documentation}
\mbox{\label{fsm__foe_8c_a06fc87d81c62e9abb8790b6e5713c55b}} 
\subsubsection{anonymous enum}
{\footnotesize\ttfamily anonymous enum}



FoE Op\+Codes. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+R\+RQ@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+R\+RQ}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+R\+RQ@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+R\+RQ}}}\mbox{\label{fsm__foe_8c_a06fc87d81c62e9abb8790b6e5713c55ba274ce7f1d098d17f4435a8bfdee7a4b6}} 
E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+R\+RQ&Read request. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+W\+RQ@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+W\+RQ}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+W\+RQ@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+W\+RQ}}}\mbox{\label{fsm__foe_8c_a06fc87d81c62e9abb8790b6e5713c55ba85d9b2730d6c8860d50c902a56c4b77f}} 
E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+W\+RQ&Write request. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+D\+A\+TA@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+D\+A\+TA}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+D\+A\+TA@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+D\+A\+TA}}}\mbox{\label{fsm__foe_8c_a06fc87d81c62e9abb8790b6e5713c55bad82fed5898705732018c89eaef73b61b}} 
E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+D\+A\+TA&Data. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+A\+CK@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+A\+CK}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+A\+CK@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+A\+CK}}}\mbox{\label{fsm__foe_8c_a06fc87d81c62e9abb8790b6e5713c55baf596c2995678e7539a7e0291397ffa41}} 
E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+A\+CK&Acknowledge. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+E\+RR@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+E\+RR}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+E\+RR@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+E\+RR}}}\mbox{\label{fsm__foe_8c_a06fc87d81c62e9abb8790b6e5713c55ba44f334d877d5a8f7ece1073bf18b65e1}} 
E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+E\+RR&Error. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+B\+U\+SY@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+B\+U\+SY}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+B\+U\+SY@{E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+B\+U\+SY}}}\mbox{\label{fsm__foe_8c_a06fc87d81c62e9abb8790b6e5713c55bacbb873b6fbdd75456477f6f7ed5d04a1}} 
E\+C\+\_\+\+F\+O\+E\+\_\+\+O\+P\+C\+O\+D\+E\+\_\+\+B\+U\+SY&Busy. \\
\hline

\end{DoxyEnumFields}


Definition at line 66 of file fsm\+\_\+foe.\+c.



\subsection{Function Documentation}
\mbox{\label{fsm__foe_8c_a3cc95aabb8eac93a7c7cd3d2232a0d8f}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+foe\+\_\+prepare\+\_\+data\+\_\+send@{ec\+\_\+foe\+\_\+prepare\+\_\+data\+\_\+send}}
\index{ec\+\_\+foe\+\_\+prepare\+\_\+data\+\_\+send@{ec\+\_\+foe\+\_\+prepare\+\_\+data\+\_\+send}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+foe\+\_\+prepare\+\_\+data\+\_\+send()}
{\footnotesize\ttfamily int ec\+\_\+foe\+\_\+prepare\+\_\+data\+\_\+send (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Sends a file or the next fragment. 

\begin{DoxyReturn}{Returns}
Zero on success, otherwise a negative error code. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em fsm} & Finite state machine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 236 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_aa3044752120b2e5e680b20ffda0d1297}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+foe\+\_\+prepare\+\_\+wrq\+\_\+send@{ec\+\_\+foe\+\_\+prepare\+\_\+wrq\+\_\+send}}
\index{ec\+\_\+foe\+\_\+prepare\+\_\+wrq\+\_\+send@{ec\+\_\+foe\+\_\+prepare\+\_\+wrq\+\_\+send}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+foe\+\_\+prepare\+\_\+wrq\+\_\+send()}
{\footnotesize\ttfamily int ec\+\_\+foe\+\_\+prepare\+\_\+wrq\+\_\+send (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Prepare a write request (W\+RQ) with filename. 

\begin{DoxyReturn}{Returns}
Zero on success, otherwise a negative error code. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em fsm} & Finite state machine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 278 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a3f9f8b638f6330e726d6990c7026d9ab}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+foe\+\_\+prepare\+\_\+rrq\+\_\+send@{ec\+\_\+foe\+\_\+prepare\+\_\+rrq\+\_\+send}}
\index{ec\+\_\+foe\+\_\+prepare\+\_\+rrq\+\_\+send@{ec\+\_\+foe\+\_\+prepare\+\_\+rrq\+\_\+send}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+foe\+\_\+prepare\+\_\+rrq\+\_\+send()}
{\footnotesize\ttfamily int ec\+\_\+foe\+\_\+prepare\+\_\+rrq\+\_\+send (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Prepare a read request (R\+RQ) with filename. 

\begin{DoxyReturn}{Returns}
Zero on success, otherwise a negative error code. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em fsm} & Finite state machine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 555 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a749663830c78b6c8448cfb2720314a03}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+foe\+\_\+prepare\+\_\+send\+\_\+ack@{ec\+\_\+foe\+\_\+prepare\+\_\+send\+\_\+ack}}
\index{ec\+\_\+foe\+\_\+prepare\+\_\+send\+\_\+ack@{ec\+\_\+foe\+\_\+prepare\+\_\+send\+\_\+ack}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+foe\+\_\+prepare\+\_\+send\+\_\+ack()}
{\footnotesize\ttfamily int ec\+\_\+foe\+\_\+prepare\+\_\+send\+\_\+ack (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Prepare to send an acknowledge. 

\begin{DoxyReturn}{Returns}
Zero on success, otherwise a negative error code. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 589 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a783c1ba470f6b2d1a94169ecd872f5ad}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+foe\+\_\+set\+\_\+tx\+\_\+error@{ec\+\_\+foe\+\_\+set\+\_\+tx\+\_\+error}}
\index{ec\+\_\+foe\+\_\+set\+\_\+tx\+\_\+error@{ec\+\_\+foe\+\_\+set\+\_\+tx\+\_\+error}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+foe\+\_\+set\+\_\+tx\+\_\+error()}
{\footnotesize\ttfamily void ec\+\_\+foe\+\_\+set\+\_\+tx\+\_\+error (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{uint32\+\_\+t}]{errorcode }\end{DoxyParamCaption})}



Set an error code and go to the send error state. 


\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em errorcode} & FoE error code. \\
\hline
\end{DoxyParams}


Definition at line 908 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a794246bfd5d0c299f750b2d86423c09e}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+foe\+\_\+set\+\_\+rx\+\_\+error@{ec\+\_\+foe\+\_\+set\+\_\+rx\+\_\+error}}
\index{ec\+\_\+foe\+\_\+set\+\_\+rx\+\_\+error@{ec\+\_\+foe\+\_\+set\+\_\+rx\+\_\+error}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+foe\+\_\+set\+\_\+rx\+\_\+error()}
{\footnotesize\ttfamily void ec\+\_\+foe\+\_\+set\+\_\+rx\+\_\+error (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{uint32\+\_\+t}]{errorcode }\end{DoxyParamCaption})}



Set an error code and go to the receive error state. 


\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em errorcode} & FoE error code. \\
\hline
\end{DoxyParams}


Definition at line 921 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_ac8e37032f0da607138b31e1be38e66a3}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+end@{ec\+\_\+fsm\+\_\+foe\+\_\+end}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+end@{ec\+\_\+fsm\+\_\+foe\+\_\+end}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+end()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+end (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



State\+: E\+ND. 


\begin{DoxyParams}{Parameters}
{\em fsm} & finite state machine \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 220 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_ac71bdb43cf404486a3b3746e8b84b8c4}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+error@{ec\+\_\+fsm\+\_\+foe\+\_\+error}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+error@{ec\+\_\+fsm\+\_\+foe\+\_\+error}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+error()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+error (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



State\+: E\+R\+R\+OR. 


\begin{DoxyParams}{Parameters}
{\em fsm} & finite state machine \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 206 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a0a7b0412be47fea987c8acd25460ccbc}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+wrq\+\_\+sent@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+wrq\+\_\+sent}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+wrq\+\_\+sent@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+wrq\+\_\+sent}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+wrq\+\_\+sent()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+wrq\+\_\+sent (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



State\+: W\+RQ S\+E\+NT. 

Checks is the previous transmit datagram succeded and sends the next fragment, if necessary. 
\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 477 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a11fa7aa0ca3996b8b7224b75f6881ada}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+rrq\+\_\+sent@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+rrq\+\_\+sent}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+rrq\+\_\+sent@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+rrq\+\_\+sent}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+rrq\+\_\+sent()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+rrq\+\_\+sent (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



State\+: R\+RQ S\+E\+NT. 

Checks is the previous transmit datagram succeeded and sends the next fragment, if necessary. 
\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 615 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a1c15317b1cb99d3d7f0202fe0c7d67fc}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+check@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+check}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+check@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+check}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+check()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+check (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Check for acknowledge. 


\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 345 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_ac400ff02da716a3495e6f2496ed155bf}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+read@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+read}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+read@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+read}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+read()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+ack\+\_\+read (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Acknowledge a read operation. 


\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 397 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a66e1620c3f79db7867547b3447d830ae}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+sent@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+sent}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+sent@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+sent}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+sent()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+sent (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



State\+: W\+RQ S\+E\+NT. 

Checks is the previous transmit datagram succeded and sends the next fragment, if necessary. 
\begin{DoxyParams}{Parameters}
{\em fsm} & Foe statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 518 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_af86faeba94c3f23660f4f36501c4d587}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+check@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+check}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+check@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+check}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+check()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+check (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Check for data. 


\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 686 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_ab160ca94e3c8369d9c5b7f4e5a526b4c}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+read@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+read}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+read@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+read}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+read()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+data\+\_\+read (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Start reading data. 


\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 738 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a9997509b047fe9257a942f955bb2beee}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+sent\+\_\+ack@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+sent\+\_\+ack}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+sent\+\_\+ack@{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+sent\+\_\+ack}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+sent\+\_\+ack()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+state\+\_\+sent\+\_\+ack (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Sent an acknowledge. 


\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 862 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a26b3dd3314755ca5f00f06203bca35a8}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+write\+\_\+start@{ec\+\_\+fsm\+\_\+foe\+\_\+write\+\_\+start}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+write\+\_\+start@{ec\+\_\+fsm\+\_\+foe\+\_\+write\+\_\+start}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+write\+\_\+start()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+write\+\_\+start (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Initializes the FoE write state machine. 


\begin{DoxyParams}{Parameters}
{\em fsm} & finite state machine \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 311 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a3b9abbda9598a99b2979141597ce9c1d}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+read\+\_\+start@{ec\+\_\+fsm\+\_\+foe\+\_\+read\+\_\+start}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+read\+\_\+start@{ec\+\_\+fsm\+\_\+foe\+\_\+read\+\_\+start}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+read\+\_\+start()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+read\+\_\+start (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Starting state for read operations. 


\begin{DoxyParams}{Parameters}
{\em fsm} & FoE statemachine. \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 653 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a99c4cd5d11be273cc2119fe11e829574}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+init@{ec\+\_\+fsm\+\_\+foe\+\_\+init}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+init@{ec\+\_\+fsm\+\_\+foe\+\_\+init}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+init()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+init (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm }\end{DoxyParamCaption})}



Constructor. 


\begin{DoxyParams}{Parameters}
{\em fsm} & finite state machine \\
\hline
\end{DoxyParams}


Definition at line 107 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a488d124cc61f4d42841910e3a6f46507}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+clear@{ec\+\_\+fsm\+\_\+foe\+\_\+clear}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+clear@{ec\+\_\+fsm\+\_\+foe\+\_\+clear}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+clear()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+clear (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm }\end{DoxyParamCaption})}



Destructor. 


\begin{DoxyParams}{Parameters}
{\em fsm} & finite state machine \\
\hline
\end{DoxyParams}


Definition at line 119 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a305e7b497f30525f7fcb4bbcd31b3cd3}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+exec@{ec\+\_\+fsm\+\_\+foe\+\_\+exec}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+exec@{ec\+\_\+fsm\+\_\+foe\+\_\+exec}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+exec()}
{\footnotesize\ttfamily int ec\+\_\+fsm\+\_\+foe\+\_\+exec (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+datagram\+\_\+t} $\ast$}]{datagram }\end{DoxyParamCaption})}



Executes the current state of the state machine. 

\begin{DoxyReturn}{Returns}
1, if the datagram was used, else 0. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em fsm} & finite state machine \\
\hline
{\em datagram} & Datagram to use. \\
\hline
\end{DoxyParams}


Definition at line 129 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_a97ddad1a7cedab54a4cf939699fc55a8}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+success@{ec\+\_\+fsm\+\_\+foe\+\_\+success}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+success@{ec\+\_\+fsm\+\_\+foe\+\_\+success}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+success()}
{\footnotesize\ttfamily int ec\+\_\+fsm\+\_\+foe\+\_\+success (\begin{DoxyParamCaption}\item[{const \textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm }\end{DoxyParamCaption})}



Returns, if the state machine terminated with success. 

\begin{DoxyReturn}{Returns}
non-\/zero if successful. 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em fsm} & Finite state machine \\
\hline
\end{DoxyParams}


Definition at line 163 of file fsm\+\_\+foe.\+c.

\mbox{\label{fsm__foe_8c_abf0df15e56191827d71bfde97ed3284c}} 
\index{fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}!ec\+\_\+fsm\+\_\+foe\+\_\+transfer@{ec\+\_\+fsm\+\_\+foe\+\_\+transfer}}
\index{ec\+\_\+fsm\+\_\+foe\+\_\+transfer@{ec\+\_\+fsm\+\_\+foe\+\_\+transfer}!fsm\+\_\+foe.\+c@{fsm\+\_\+foe.\+c}}
\subsubsection{ec\+\_\+fsm\+\_\+foe\+\_\+transfer()}
{\footnotesize\ttfamily void ec\+\_\+fsm\+\_\+foe\+\_\+transfer (\begin{DoxyParamCaption}\item[{\textbf{ ec\+\_\+fsm\+\_\+foe\+\_\+t} $\ast$}]{fsm,  }\item[{\textbf{ ec\+\_\+slave\+\_\+t} $\ast$}]{slave,  }\item[{\textbf{ ec\+\_\+foe\+\_\+request\+\_\+t} $\ast$}]{request }\end{DoxyParamCaption})}



Prepares an FoE transfer. 


\begin{DoxyParams}{Parameters}
{\em fsm} & State machine. \\
\hline
{\em slave} & Ether\+C\+AT slave. \\
\hline
{\em request} & Sdo request. \\
\hline
\end{DoxyParams}


Definition at line 172 of file fsm\+\_\+foe.\+c.

